package ${package.Service};

import ${package.Parent}.dao.${entity};
import ${superServiceClassPackage};
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import ${package.Parent}.vo.Result;

import java.util.List;

/**
 * ${table.comment!} 服务类
 *
 * @author ${author}
 * @since ${date}
 */
<#if kotlin>
interface ${table.serviceName} : ${superServiceClass}<${entity}>
<#else>
public interface ${table.serviceName} extends IService<${entity}> {

    /***
     * 条件分页查询${entity?uncap_first}数据
     * @param ${entity?uncap_first} 查询条件实体
     * @param page 当前页数
     * @param size 每页大小
     * @return 查询结果
     */
    Result findPage(${entity} ${entity?uncap_first}, int page, int size);


    /***
     * 分页查询所有${entity?uncap_first}数据
     * @param page 当前页数
     * @param size 每页大小
     * @return 查询结果
     */
    Result findPage(int page, int size);


    /***
     * 条件查询${entity?uncap_first}数据
     * @param ${entity?uncap_first} 查询条件实体
     * @return 查询结果
     */
    Result findList(${entity} ${entity?uncap_first});


    /***
     * 根据Id删除${entity?uncap_first}数据
     * @param id 删除的数据Id
     * @return 删除结果
     */
    Result deleteById(Integer id);


    /***
     * 根据Id批量删除${entity?uncap_first}数据
     * @param ids 删除的数据Id集合
     * @return 删除结果
     */
    Result deleteByIds(List<Integer> ids);


    /***
     * 根据Id修改${entity}数据
     * @param ${entity?uncap_first} 修改数据实体
     * @return 修改结果
     */
    Result update(${entity} ${entity?uncap_first});


    /***
     * 新增${entity}数据
     * @param ${entity?uncap_first} 新增数据实体
     * @return 新增结果
     */
    Result add(${entity} ${entity?uncap_first});


    /***
     * 根据ID查询${entity}数据
     * @param id 查询Id编号
     * @return 查询结果
     */
    Result findById(Integer id);


    /***
     * 根据Id批量查询${entity}数据
     * @param ids 查询的数据Id集合
     * @return 查询结果
     */
    Result findByIds(List<Integer> ids);


    /***
     * 查询所有${entity}
     * @return 查询结果
     */
    Result findAll();

}
</#if>
